import json

def common_make_text(qas,file):
    """
    {"conversations":[{"from":"human","value":"两只脚明显大小不一样，腿也不一样粗，该怎么办，两只脚明显大小不一样，腿也不一样粗，该怎么办，需要做什么检查"},{"from":"gpt","value":"，与走路姿势没有关系的，人的器官，没有完全对称的，只是有的不是很明显的，这很正常的，只要健康就好。只有手术能纠正的。"}]}
    :param qas:
    :return:
    """
    with open(file,'w',encoding='utf-8') as writer:
        for q,a in qas:
            if isinstance(a,str) is False:
                continue
            if isinstance(q, str) is False:
                continue

            d = {"query":q, "response": a.strip().replace('              ','')}
            writer.write(json.dumps(d,ensure_ascii=False))
            writer.write('\n')

import pandas as pd

df =  pd.read_excel('japanese-learning/标日初级单词表.xlsx')
print(len(df))
print(df.columns)
#新标初_24
chap = ['新标初_{}'.format(i) for i in range(25,49)]
df = df[~df['课文'].isin(chap)]
#Index(['Unnamed: 0', '日文', '假名', '中文', '类型', '课文'], dtype='object')
qas = []
for ix,row in df.iterrows():
    # 根据每个单词的信息 生成 一个问答对，要给大模型进行训练
    q_tmplate1 = '请用中文解释这个单词："{}"'
    q_tmplate2 =  '这个单词"{}"，它的中文意思是什么？'
    a_tmplate = '这个单词的意思是：{}。'
    a_tmplate2 = '这个单词的中文意思是：{}'
    q_zh2jap = '把"{}"翻译成日文是什么？'
    a_zh2jap =  '把"{}"翻译成日文是"{}"。'
    q_jap2zh = '把"{}"翻译成中文是什么？'


    q1 = q_tmplate1.format(row['日文'])
    q2 = q_tmplate2.format(row['日文'])
    a1 = a_tmplate.format(row['中文'])
    a2 = a_tmplate2.format(row['中文'])
    qas.append([q1,a1])
    qas.append([q2,a2])
    qas.append([q_zh2jap.format(row['中文']),a_zh2jap.format(row['中文'],row['日文'])])
    q_tmplate3 ,a_tmplate3 = '"{}"这个日文单词在哪一课出现','这个单词出现在第{}课'
    q3 = q_tmplate3.format(row['日文'])
    a3 = a_tmplate3.format(row['课文'])
    qas.append([q3,a3])
    q_tmplate3, a_tmplate3 = '"{}"这个中文单词在哪一课出现', '这个单词出现在第{}课'
    q3 = q_tmplate3.format(row['中文'])
    a3 = a_tmplate3.format(row['课文'])
    qas.append([q3, a3])

import random
#random.shuffle(qas)
qas = qas[: ]
train_qas ,test_qas = qas[:int(len(qas)*0.8)],qas[int(len(qas)*0.8):]
common_make_text(train_qas,'japanese-learning/japanese_no_shuffle_train.jsonl')
common_make_text(test_qas,'japanese-learning/japanese_no_shuffle_test.jsonl')



